package com.itheima.reggie.common;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

//创建一个响应结果的通用类
@Data
@ApiModel("返回结果")
public class R<T> implements Serializable {
    @ApiModelProperty("编码")
    private Integer code;
    @ApiModelProperty("错误信息")
    private String msg;
    @ApiModelProperty("数据")
    private T data;//数据 这里使用泛型  如果响应的时多个employee对象该怎么办呢
    @ApiModelProperty("动态数据")
    private Map map = new HashMap<>();//动态数据

    //成功的时候返回一个结果 成功的方法
    public static <Q> R<Q> success(Q object) {//根据调用时传的参数类型来 定义返回结果的类型中的属性data的类型???
        //根据传过来的参数来返回一个结果
        R<Q> r = new R<Q>();
        r.data = object;//为什么这里能够直接对象名点属性名呢,不是应该时get方法吗
        r.code = 1;
        return r;
    }
    //失败的时候响应一个结果
    public static R error(String msg){//一旦失败 我们只可能给前端响应一个编码和字符串 所以不需要再给data赋值
        //就不需要添加泛型了
        R r = new R();
        r.msg=msg;
        r.code=0;
        return r;

    }




}
